1. Field of the Invention
This invention relates generally to data compression, and more particularly to an Encoder-Decoder (“codec”) system. Even more particularly, this invention relates to improving decoder performance in a single-encoder codec system.
2. Description of the Background Art
Demand for high-definition (HD) media (e.g., video, still images, etc.) has increased dramatically in recent years. As a result, the demand for media devices (e.g., cameras, mobile telephones, tablet computers, etc) has also increased. A primary design goal for modern media devices is ensuring uninterrupted media throughput.
Codecs are used in media devices to increase data compression and throughput by encoding the media. In a codec, the encoder receives the media data and encodes it into a compressed data stream. The compressed data stream is eventually transferred to a decoder, which decodes the compressed data and provides it at an output. Unfortunately, the decoder often creates a bottleneck in the data stream, which is problematic when the data output rate of the decoder is insufficient to play the media in a desired manner (e.g., at the desired frame rate, at the desired resolution, etc.) or results in data being lost.
Codecs that employ Run-Length and Entropy encoding and decoding techniques (e.g., JPEG, MPEG, etc.) are particularly prone to decoder bottlenecking, because the content of the compressed data stream from the encoder is unpredictable. This unpredictability causes the decoding process to take too long and image data to be lost and/or forces the media device to operate too slowly. This unpredictability is also what limits prior art decoders to a single decoding channel.
What is needed, therefore, is a system and method that improves decoder performance in a codec system. What is also needed is a system and method that controls data compression and decoder performance during the initial encoding process. What is also needed is a system and method that greatly reduces or eliminates bottlenecking during the decoding process.